home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / src / Icon.C < prev    next >
C/C++ Source or Header  |  1990-12-04  |  1KB  |  59 lines

  1. //$Icon$
  2. #include "Icon.h"
  3. #include "Menu.h"
  4. #include "String.h"
  5. #include "CmdNo.h"
  6.  
  7. //---- Icon --------------------------------------------------------------------
  8.   
  9. MetaImpl(Icon, (TP(menu), 0));
  10.  
  11. Icon::Icon(EvtHandler *eh, VObject *v) : BlankWin(eh, v, gPoint_1)
  12. {
  13. }
  14.  
  15. Icon::~Icon()
  16. {
  17.     SafeDelete(menu);
  18. }
  19.  
  20. Command *Icon::DoLeftButtonDownCommand(Point lp, Token t, int clicks)
  21. {
  22.     if (clicks >= 2)
  23.     return DoMenuCommand(cCOLLAPSE);
  24.     return BlankWin::DoLeftButtonDownCommand(lp, t, clicks);
  25. }
  26.  
  27. class Menu *Icon::GetMenu()
  28. {
  29.     if (menu == 0)
  30.     menu= new Menu("Icon");
  31.     return menu;
  32. }
  33.  
  34. void Icon::DoCreateMenu(class Menu *m)
  35. {
  36.     BlankWin::DoCreateMenu(m);    
  37.     m->ReplaceItem(cCOLLAPSE, "expand");
  38. }
  39.  
  40. void Icon::UpdateIconLabel(char *label)
  41. {
  42.     if (!label)
  43.     return;
  44.     VObject *vop= FindItem(cIdIconLabel);
  45.     if (!vop || !vop->IsKindOf(TextItem))
  46.     return;
  47.     TextItem *tip= (TextItem *)vop;
  48.     
  49.     label= BaseName(label);
  50.     if (strcmp(tip->AsString(), label) != 0) {
  51.     tip->SetString(label, TRUE);
  52.     SetMinExtent(GetViewedVObject()->GetMinSize());
  53.     CalcExtent();
  54.     SetOrigin(GetOrigin());
  55.     ForceRedraw();
  56.     UpdateEvent();
  57.     }
  58. }
  59.